package persistencia;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Properties;
import java.util.TreeMap;
import logica.colecciones.AuxPartidas;
import persistencia.PersistenciaException;
import logica.clases.Partida;
import logica.colecciones.Partidas;


public class Persistencia implements Serializable{
	private final static long serialVersionUID = 1;
	
	
	public static void respaldarPartidas(TreeMap<String,Partida> partidas) throws PersistenciaException {
	
		try{
			Config conf = Config.getInstancia();
		
			String rutaArchivo = conf.getArchivoConf("RespaldoEnDisco");
			FileOutputStream f = new FileOutputStream(rutaArchivo);
			ObjectOutputStream o = new ObjectOutputStream(f);
			
			AuxPartidas auxPartidas = new AuxPartidas();
			auxPartidas.setPartidas(partidas);
			o.writeObject(auxPartidas);
			
			o.close();
			f.close();
		} catch (IOException e) {
			throw new PersistenciaException(e.getMessage(),1);
		}
	}

	public static void recuperarPartidas() throws PersistenciaException {

		try {
			 Config conf = Config.getInstancia();
             String rutaArchivo = conf.getArchivoConf("RespaldoEnDisco"); 


			FileInputStream f = new FileInputStream(rutaArchivo);

			ObjectInputStream o = new ObjectInputStream(f);
			
			AuxPartidas auxPartidas = new AuxPartidas();
			auxPartidas = ((AuxPartidas) o.readObject());
			Partidas.getInstancia().setPartidas(auxPartidas.getPartidas());
			
			o.close();
			f.close();

		} catch (FileNotFoundException e){
			AuxPartidas auxPartidas = new AuxPartidas();
			Partidas.getInstancia().setPartidas(auxPartidas.getPartidas());
		} catch (IOException e) {
			throw new PersistenciaException(e.getMessage(),2);
		} catch (ClassNotFoundException e) {
			throw new PersistenciaException(e.getMessage(),2);
		} 
	}	

}
